Pyinstaller打包至win7不兼容问题,亲测已解决 您所在的位置:网站首页 电脑不能安装py installer Pyinstaller打包至win7不兼容问题,亲测已解决

Pyinstaller打包至win7不兼容问题,亲测已解决

2024-07-08 12:38| 来源: 网络整理| 查看: 265

使用Pyinstaller打包Python项目至win7运行报错问题,已解决

之前有个项目是在win11开发的,但是客户要求将项目部署到win7端,并且是打包成可执行文件.exe。刚开始很顺利,开发-打包-测试,没曾想移植到win7的时候突然间报错。明明在Pyinstaller工具打包过程中,项目中所有的依赖库都打包进去了。就纳闷为什么无法运行。

报错

在这里插入图片描述

分析

初步判读可能是win7win11的系统版本兼容性不同,所以项目需要的某个系统文件缺失,那就找个地方下载给他补进去。

脚本下载:到百度直接搜索脚本名字api-ms-win-core-path-l1-1-0.dll 随处可见下载链接 解决方法一

把下载好的文件(api-ms-win-core-path-l1-1-0.dll)放到你的系统路径。它的默认路径是在:

C:\Windows\System (Windows 95/98/Me),

C:\WINNT\System32 (Windows NT/2000),

C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10)。

在 64位 Windows 上,32位 DLL 文件的默认路径是

C:\Windows\SysWOW64\, 64 位 DLL 文件在

C:\Windows\System32\ 。

确保覆盖已有的全部文件(但保留一个原文件备份),然后重启电脑。

解决方法二   如果问题仍未解决,按以下步骤注册 DLL 文件:

32 位 DLL 文件用在 32 位 Windows 上,

64 位 DLL 文件用在 64 位 Windows 上:

打开一个提升权限运行的命令行窗口。

具体操作是点击“开始”,点击“所有程序”,点击“附件”,右键点击“命令提示符”,然后点击“以管理员权限运行”。

在 Windows 8/10 中,前往“开始”界面。键入“cmd”, Windows 会找到“命令行提示符”。右键点击“命令提示符”,选择“以管理员权限运行”。

如果要求输入管理员密码或确认,输入密码,或点击“允许”。

输入 regsvr32 “filename“.dll 然后按下回车。

将 32 位 DLL 文件注册到一台 64 位 Windows 上:

按前述方法打开一个提升权限运行的命令行窗口。

在命令行中键入:

cd c:\windows\syswow64\

然后键入以下命令并回车:

regsvr32 c:\windows\syswow64\”filename“.dll

解决方法三   下载一个驱动精灵,点击系统检测,电脑缺少什么文件都可以检测出来。检测好了之后软件会提示需要安装什么,提示:必要系统组件几个等等,然后点击进去安装就是了。安装完成记得重启一下,就修复完成了!

再次测试

再次测试之后,上面的保存已经不存在了,但是出现了其他报错。

SystemError: Negative size passed to PyUnicode_New

经查询之后发现是编码报错,查询到的几乎所有帖子都是说将utf-8编码改为gbk编码 考虑过后发现工作量非常大,毕竟代码里面涉及到了路径参数。 最后我考虑有没有可能win7的版本太老,而我们目前用的python版本太过于超前,才导致的不兼容问题。

验证猜想

我重新创建一个python虚拟环境win7py python==3.5 在这里插入图片描述 随后在这个虚拟环境下使用Pyinstaller工具再次打包项目,再迁移到win7系统上面就发现可以运行



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有